package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.User;
import cn.wolfcode.trip.base.query.QueryObject;
import com.github.pagehelper.PageInfo;

public interface IUserService {
    /***
     * 新增和更新
     * @param user
     */
    void saveOrUpdate(User user);

    /**
     * 登陆
     * @param user
     * @return
     */
    User login(User user);

    /**
     * 高查 翻页
     * @param qo
     */
    PageInfo<User> query(QueryObject qo);

    /**
     * 查询用户信息
     * @param id
     * @return
     */
    User getUser(Long id);

    /**
     * 通过用户的id和游记的id查找是否收藏
     * @param userId
     * @param travelId
     * @return
     */
    boolean selectCollectByUserId(Long userId, Long travelId);

    /**
     * 通过用户的id和游记的id保存收藏关系
     * @param userId
     * @param travelId
     */
    void saveCollectByUserId(Long userId, Long travelId);

    /**
     * 通过用户的id和游记的id保存收藏关系
     * @param userId
     * @param travelId
     */
    void deleteCollectByUserId(Long userId, Long travelId);

    /**
     * 通过用户的id查询总游记条数
     * @param userId
     * @return
     */
    int selectCountTravelById(Long userId);
    /**
     * 通过用户的id查询总游记评论条数
     * @param userId
     * @return
     */
    int selectTravelCommendCountTravelById(Long userId);
    /**
     * 通过用户的id查询总攻略评论条数
     * @param userId
     * @return
     */
    int selectStrategyCommendCountStrategyById(Long userId);
}
